Measuring Code Complexity in Projects Designed with Aspect/J
نویسنده
چکیده
The modularized code encapsulating object interactions is characterized by class hierarchies. In the implementation of mobile agents, we have observed that the changes in agent interaction protocols lead to uncontrolled subclassing and consequently to disorder. This phenomenon is known as entropy. The additional subclassing, modification to protocols, restructuring of the class hierarchies, changes to visibility of attributes, and method overloading result in increased complexity of the code. This problem in agent design has been tackled by Kendall (Kendall, 1999) who proposed development using Aspect/J and separation of concerns. Since there has been no proof of reduced complexity, we have proposed metrics for software complexity estimation, and ranking of compositional elements developed with Aspect/J. The metrics have been tested on Java code for mobile agents.
منابع مشابه
Measurement of Complexity and Comprehension of a Program Through a Cognitive Approach
The inherent complexity of the software systems creates problems in the software engineering industry. Numerous techniques have been designed to comprehend the fundamental characteristics of software systems. To understand the software, it is necessary to know about the complexity level of the source code. Cognitive informatics perform an important role for better understanding the complexity o...
متن کاملA MULTI-OBJECTIVE OPTIMIZATION MODEL FOR PROJECT PORTFOLIO SELECTION CONSIDERING AGGREGATE COMPLEXITY: A CASE STUDY
Existing project selection models do not consider the complexity of projects as a selection criterion, while their complexity may prolong the project duration and even result in its failure. In addition, existing models cannot formulate the aggregate complexity of the selected projects. The aggregated complexity is not always equal to summation of complexity of projects because of possible syne...
متن کاملA Survey of Aspect-Oriented Programming Languages
Aspect-Oriented Software Development (AOSD) is one of the newest approaches for managing complexity by further modularizing code for large software systems. Software code continues to grow in size as well as complexity [1]. Aspect-Oriented Programming (AOP) is meant to improve modularity, and reduce complexity by separation of concerns in code. AOP is designed to work with programming languages...
متن کاملGECO: Automatic Generator-Composition for Aspect-oriented DSLs
Increasing size and complexity of software projects have triggered the use of domain-specific languages (DSL). Multiple DSLs, some with cross-cutting concerns, are used to describe software systems. In context of long-living software systems, requirements change over time causing an evolution of domains and subsequently the corresponding DSLs. Transformations are used to generate models and cod...
متن کاملMaintainability and Source Code Conventions: An Analysis of Open Source Projects
Maintainability is a desirable property of software, and a variety of metrics have been proposed for measuring it, all based on different notions of complexity. Although these metrics are useful, complexity is only one factor influencing maintainability. Practical experience in software development has led to a set of best practices and coding conventions that are believed to make source code e...
متن کامل